System and method for determining a source and topic of content for posting in a chat group

ABSTRACT

A system for determining a source and topic of content for posting in a chat group is disclosed. The system includes a memory and at least one processor. The at least one processor may be configured to perform operations including identifying a user as a source of content; identifying a topic from the content using a language analysis application; determining, from the identified topic, a particular chat group from among a set of chat groups; and posting a portion of the content as a new message from the user in a message thread for the particular chat group.

TECHNICAL FIELD

The present disclosure relates to the field of conferencing systems and,more particularly, systems and methods for determining a source andtopic of content for posting in a chat group.

BACKGROUND

Presentations are often delivered to audiences that do not include allinterested personnel due to room seating constraints and personnelavailability. Important information provided during presentations maynot be disseminated to all interested persons, resulting ininefficiencies and errors in an organization's operations. Generally, toovercome this, organizations employ video or telephone conferencingcapabilities, allowing virtually unlimited audience size. Additionally,presentations may be recorded to allow asynchronous viewing ofpresentations.

However, multiple topics may be covered in a presentation, and only asubset of the topics presented may interest a particular individual orgroup. For instance, a cybersecurity office within an organization maydesire to learn about a company's recent cybersecurity priorities, butthe office may not have interest in the organization's new employeerecruiting efforts. Further, members of the cybersecurity office may nothave sufficient time to listen to a long presentation to hear a shortrelevant section. This reduces attendance, either in-person or by videoor teleconference capabilities, as well as consumption of recordedpresentations and discussions. Thus, content length may impede widedissemination of policies, decisions, priorities, and guidance whichcould affect company operations. Similarly, large documents may attractlimited readers due to a low amount of information relevant to thereader mixed with large amounts of irrelevant information.

To remedy this, organizations often employ meeting minutes to providesummaries of discussed topics, and disseminate the meeting minutes tointerested parties. This solution, though, introduces additionalproblems. Meeting minutes may be inaccurate, record topics discussedgenerally while missing important details, and may not identify thespeaker of the information. Meeting minutes also are often delayed andrequire time and effort to produce, increasing costs and preventingprompt access to information. Dissemination of meeting minutes may beproblematic as well. For instance, if an organization has informationthat must remain secure by limiting distribution, disseminating meetingminutes may require labor-intensive parsing of information to ensurethat offices only receive information they have permission or desire toview. This further increases costs, and risks accidental disseminationof sensitive information or misaddressed information. Often, rather thanbroadly disseminating information, organizations prefer to restrictdissemination altogether, preventing collaboration and reducingefficiency. Alternatively, organizations broadly disseminateinformation, causing information overload in organization members andcausing members to ignore information.

SUMMARY

In one disclosed embodiment, an automated transcription system isdisclosed. The system includes a memory and at least one processor. Theat least one processor is configured to perform operations includingidentifying a user as a source of content; identifying a topic from thecontent using a language analysis application; determining, from theidentified topic, a particular chat group from among a set of chatgroups; and posting a portion of the content as a new message from theuser in a message thread for the particular chat group.

In another disclosed embodiment, a computer-implemented automatedtranscription insertion method includes identifying a user as a sourceof content; identifying a topic from the content using a languageanalysis application; determining, from the identified topic, aparticular chat group from among a set of chat groups; and posting aportion of the content as a new message from the user in a messagethread for the particular chat group.

In another disclosed embodiment, a non-transitory computer readablemedium is disclosed. The non-transitory computer readable medium storesa set of instructions that is executable by at least one processor toperform operations including identifying a user as a source of content;identifying a topic from the content using a language analysisapplication; determining, from the identified topic, a particular chatgroup from among a set of chat groups; and posting a portion of thecontent as a new message from the user in a message thread for theparticular chat group.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute partof this disclosure, together with the description, illustrate and serveto explain the principles of various example embodiments.

FIG. 1 is a diagram of an example system in which variousimplementations described herein may be practiced.

FIG. 2 is a diagram of a recording device for implementing embodimentsconsistent with the present disclosure.

FIG. 3 is a diagram of an example automated transcription insertionserver, consistent with embodiments of the present disclosure.

FIG. 4 is a diagram of a presentation utilizing an automatedtranscription insertion server, consistent with embodiments of thepresent disclosure.

FIG. 5 is a diagram of a chat group utilizing an automated transcriptioninsertion server, consistent with embodiments of the present disclosure.

FIG. 6 is a flowchart of an example process for automated transcriptioninsertion, consistent with embodiments of the present disclosure.

FIG. 7 is a flowchart of an example process for training automated topicidentification, consistent with embodiments of the present disclosure.

FIG. 8 is an example keyword frequency analysis for determining relevanttopics and excerpts, consistent with embodiments of the presentdisclosure.

FIG. 9 is a flowchart of an example process for receiving feedback froma member of a chat group, consistent with embodiments of the presentdisclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to example embodiments implementedaccording to the present disclosure and illustrated in the accompanyingdrawings. Wherever possible, the same reference numbers will be usedthroughout the drawings to refer to the same or like parts.

The present disclosure arises from the realization that an organizationmay improve productivity and distribution of information by combiningconferencing, presentation, and file management technology with chatgroups. For example, an author of a document, presenter delivering apresentation, or speaker during a teleconference or videoconference maybe unable to quickly direct relevant excerpts to an interested chatgroup to precisely distribute content to interested parties. However,precise distribution may be helpful to ensure that interested partiesare not overwhelmed by unnecessary or irrelevant information.Additionally, members of the chat group may consider information morerelevant if they know the identity of the speaker. Thus, presentingmessages in a chat group that appear to originate from an author orspeaker may increase visibility of a message and improve communication.Further, messages in a chat group may indicate to members of the chatgroup that a linked content contains more information that may beinteresting and relevant to members of the chat group, further helpingorganizations to improve communication and standardizing a knowledgebase between members of a chat group. In the present disclosure, “chatgroup” refers to an application allowing users to post messages that areviewable by all members with permission. The application may displaymessages in the chat group in chronological order, such that most recentmessages are displayed prominently while historical messages arerecorded and displayed when a user scrolls. Further, as used herein,“transcription” refers to textual content, such as text corresponding towords spoken during a presentation, conversation, meeting, and the like,as well as text contained in a written document, such as slides, files,spreadsheets, diagrams, flowcharts, and the like.

Disclosed embodiments further identify a topic of content and determinea chat group for which the topic is relevant. In some embodiments, amessage is posted to a chat group with a link to view a livepresentation, thus letting non-participants know that an ongoingpresentation may be interesting to them, and giving them the opportunityto view the presentation as it progresses. Disclosed embodiments mayenable members of a chat group to provide feedback. Additionally,disclosed embodiments may be capable of processing textual, audio, andvisual media to identify relevant content and speakers for postingmessages to related chat groups.

The embodiments herein include computer-implemented methods, tangiblenon-transitory computer-readable mediums, and systems. Thecomputer-implemented methods can be executed, for example, by at leastone processor that receives instructions from a non-transitorycomputer-readable storage medium. Similarly, systems and devicesconsistent with the present disclosure can include at least oneprocessor and memory, and the memory can be a non-transitorycomputer-readable storage medium. As used herein, a non-transitorycomputer-readable storage medium refers to any type of physical memoryon which information or data readable by at least one processor can bestored. Examples include random access memory (RAM), read-only memory(ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs,flash drives, disks, and any other known physical storage medium.Singular terms, such as “memory” and “computer-readable storage medium,”can additionally refer to multiple structures, such as a plurality ofmemories or computer-readable storage mediums. As referred to herein, a“memory” can comprise any type of computer-readable storage mediumunless otherwise specified. A computer-readable storage medium can storeinstructions for execution by at least one processor, includinginstructions for causing the processor to perform steps or stagesconsistent with an embodiment herein. Additionally, one or morecomputer-readable storage mediums can be utilized in implementing acomputer-implemented method. The term “computer-readable storage medium”should be understood to include tangible items and exclude carrier wavesand transient signals.

FIG. 1 is a diagram of an example system 100 in which variousimplementations described herein may be practiced. System 100 enables apresenter to, for example, deliver a presentation, while a server 140creates a transcription of the presentation and posts messages into achat group 120A, 120B viewable by users 130A, 130B, depending oninterests, focuses, and permissions, using a network 110. The componentsand arrangements shown in FIG. 1 are not intended to limit the disclosedembodiments, as the system components used to implement the disclosedprocesses and features can vary.

Further, system 100 may include a recording device 150, furtherincluding a microphone 160 and/or a video camera 170. Recording device150 may send recorded content through network 110 to server 140, or maybe integrated into server 140. In some embodiments, a user may uploadother files to server 140, such as a document, video file, or audiofile, or provide a link to a file hosted on a server, accessible througha web page retrieved via network 110.

Network 110 facilitates communications and sharing of content betweencomponents of system 100. Network 110 may be any type of network thatprovides communications, exchanges information, and/or facilitates theexchange of information between server 140, recording device 150, adatabase 180, and chat groups 120A, 120B. For example, network 110 maybe the Internet, a Local Area Network (LAN), a cellular network, apublic switched telephone network (PSTN), or other suitableconnection(s) that enables system 100 to send and receive informationbetween components. Network 110 may support a variety of electronicmessaging formats, and may further support a variety of services andapplications.

In some embodiments, one or more components of system 100 may implementcomputer programs, applications, methods, processes, or other softwareto perform the described techniques and to realize the structuresdescribed herein. For example, server 100 may host an intranetcorresponding to network 110. Additionally, components of system 100 maybe combined in the same hardware. For instance, server 140 may access acloud database by connecting to network 110.

Server 140 may be a computer-based system including computer systemcomponents, desktop computers, workstations, tablets, hand heldcomputing devices, memory devices, and/or internal network(s) connectingthe components. Server 140 may be configured to provide conferenceservices, such as hosting videoconference or teleconferences. Server 140may be configured to receive information from users over network 110,process the information, store the information, and/or transmitinformation to users over network 110. For example, server 140 may beconfigured to extract an audio component from a video recording,identify one or more topics discussed in the audio file, and identify achat group 120A, 120B focusing on the identified topic(s). The recordingmay be created automatically and saved on server 140 upon activation ofrecording device 150. Additionally, server 140 may receive a recordingas a file uploaded by a user, and process the file to identify topicsand chat groups. Identification of topics may be performed by analyzinga transcript of the recording. The transcript may be created inreal-time, or may be created after a recording has completed. In someembodiments, server 140 may use network 110 to connect to another server(not shown) configured to create a transcription.

Database 180 may include one or more physical or virtual storagescoupled with server 140. Database 180 may be configured to storeagendas, presentations, audio and/or video files, chat history, ortraining data for use by server 140. For example, database 180 may storeassociations of topics, keywords, and chat groups used by server 140 toidentify a topic of a conversation in a document, audio, or video.Database 180 may also store chat group identifiers, chat grouppermission lists, contact information of users 130A, 1306, and/or imagesof faces and voice identification files. In some embodiments, database180 is stored in a cloud-based server (not shown) that is accessible byserver 140 through network 110. While database 180 is illustrated as anexternal device connected to server 140, database 180 may also residewithin server 140 as an internal component of server 140.

As shown in FIG. 1, users 130A, 1306 communicate with server 140 vianetwork 110. As an example, users 130A, 1306 may view chat groups withdevices such as a television, tablet, computer monitor, videoconferencing console, or laptop computer screen. The devices may alsoinclude video/audio input devices such as a video camera, web camera,microphone, or the like. As another example, devices may include mobiledevices such as a tablet or a smartphone, video or audio conferencingconsoles, having display and video/audio capture capabilities. Thedevices may also include one or more software applications thatfacilitate users 130A, 1306 to engage in communications, such as instantmessaging, text messaging, email, telephony, video conferencing, or thelike.

FIG. 2 is a diagram of an example of a recording device 200 for use insystem 100. Recording device 200 can be used to implement computerprograms, applications, methods, processes, or other software to performembodiments described in the present disclosure. Recording device 200includes a memory interface 202, one or more processors 204 such as dataprocessors, image processors and/or central processing units, and aperipherals interface 206. Memory interface 202, one or more processors204, and/or peripherals interface 206 can be separate components or canbe integrated in one or more integrated circuits. The various componentsin device 200 can be coupled by one or more communication buses orsignal lines.

Sensors, devices, and subsystems can be coupled to peripherals interface206 to facilitate multiple functionalities. For example, a motion sensor210, a light sensor 212, and a proximity sensor 214 can be coupled toperipherals interface 206 to facilitate orientation, lighting, andproximity functions. Other sensors 216 can also be connected toperipherals interface 206, such as a positioning system (e.g., GPSreceiver), a temperature sensor, a biometric sensor, or other sensingdevice, to facilitate related functionalities. A camera subsystem 220and an optical sensor 222, e.g., a charged coupled device (“CCD”) or acomplementary metal-oxide semiconductor (“CMOS”) optical sensor, may beutilized to facilitate camera functions, such as recording photographsand video clips.

Communication functions may be facilitated through one or morewireless/wired communication subsystems 224, which includes an Ethernetport, radio frequency receivers and transmitters and/or optical (e.g.,infrared) receivers and transmitters. The specific design andimplementation of wireless/wired communication subsystem 224 depends onthe communication network(s) over which recording device 200 is intendedto operate. For example, in some embodiments, recording device 200includes wireless/wired communication subsystems 224 designed to operateover a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMaxnetwork, and/or a Bluetooth® network.

An audio subsystem 226 is coupled to a microphone 228 and a speaker 230to facilitate voice-enabled functions, such as voice recognition, voicereplication, digital recording, and telephony functions.

An I/O subsystem 240 includes a touch screen controller 242 and/or otherinput controller(s) 244. Touch screen controller 242 is coupled to atouch screen 246. Touch screen 246 and touch screen controller 242 can,for example, detect contact and movement or break thereof using any of aplurality of touch sensitivity technologies, including but not limitedto capacitive, resistive, infrared, and surface acoustic wavetechnologies, as well as other proximity sensor arrays or other elementsfor determining one or more points of contact with touch screen 246.While touch screen 246 is shown in FIG. 2, I/O subsystem 240 may includea display screen (e.g., CRT or LCD) in place of touch screen 246.

One or more other input controllers 244 are coupled to otherinput/control devices 248, such as one or more buttons, rocker switches,thumb-wheel, infrared port, USB port, and/or a pointer device such as astylus. Touch screen 246 may also be used to implement virtual or softbuttons and/or a keyboard. I/O subsystem 240 may also be configured toreceive files, for instance with communication subsystem 224. Thereceived files may be uploaded using an external media, downloaded fromthe internet or an intranet using network 110, or obtained as an emailedattachment or link.

Memory interface 202 is coupled to a memory 250. Memory 250 includeshigh-speed random access memory and/or non-volatile memory, such as oneor more magnetic disk storage devices, one or more optical storagedevices, and/or flash memory (e.g., NAND, NOR). Memory 250 stores anoperating system 252, such as DRAWIN, RTXC, LINUX, iOS, UNIX, OS X,WINDOWS, or an embedded operating system such as VXWorkS. Operatingsystem 252 can include instructions for handling basic system servicesand for performing hardware dependent tasks. In some implementations,operating system 252 can be a kernel (e.g., UNIX kernel).

Memory 250 may also store communication instructions 254 to facilitatecommunicating with one or more additional devices, one or more computersand/or one or more servers. Memory 250 can include graphical userinterface instructions 256 to facilitate graphic user interfaceprocessing; sensor processing instructions 258 to facilitatesensor-related processing and functions; phone instructions 260 tofacilitate phone-related processes and functions; electronic messaginginstructions 262 to facilitate electronic-messaging related processesand functions; web browsing instructions 264 to facilitate webbrowsing-related processes and functions; media processing instructions266 to facilitate media processing-related processes and functions;GPS/navigation instructions 268 to facilitate GPS and navigation-relatedprocesses and instructions; camera instructions 270 to facilitatecamera-related processes and functions; and/or other softwareinstructions 272 to facilitate other processes and functions. Memory 250may also include multimedia conference call managing instructions 274 tofacilitate conference call related processes and instructions, includingaudio or video calls.

In the presently described embodiment, the instructions cause processor204 to perform one or more functions of the disclosed methods. Forexample, the instructions may cause camera subsystem 220 to capture animage of a speaker and cause wireless communication subsystem(s) 224 totransmit the image to server 140.

Each of the above identified instructions and software applications maycorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. The memory 250 may includeadditional instructions or fewer instructions. Furthermore, variousfunctions of recording device 200 may be implemented in hardware and/orin software, including in one or more signal processing and/orapplication specific integrated circuits. Additionally, variousfunctions of recording device 200 may be performed by server 140.

FIG. 3 is a diagram of an example configuration of automatedtranscription insertion server 140, consistent with embodiments of thepresent disclosure. Server 140 includes a bus 302 (or othercommunication mechanism) which interconnects subsystems and componentsfor transferring information within server 140. As shown, server 140includes one or more processors 310, input/output (“I/O”) devices 350,and a network interface 360 (e.g., a modem, Ethernet card, or any otherinterface configured to exchange data with a network). Server 140 alsoincludes one or more memories 320 storing programs 330 including, forexample, server app(s) 332, an operating system 334, and data 340, andcan communicate with external database 180 (which, for some embodiments,may be included within server 140). Server 140 may be a single server ormay be configured as a distributed computer system including multipleservers, server farms, clouds, or computers that interoperate to performone or more of the processes and functionalities associated with thedisclosed embodiments.

Processor 310 may be one or more processing devices configured toperform functions of the disclosed methods, such as a microprocessormanufactured by Intel™ or manufactured by AMD™. Processor 310 maycomprise a single core or multiple core processors executing parallelprocesses simultaneously. For example, processor 310 may be a singlecore processor configured with virtual processing technologies. Incertain embodiments, processor 310 may use logical processors tosimultaneously execute and control multiple processes. Processor 310 mayimplement virtual machine technologies, or other technologies to providethe ability to execute, control, run, manipulate, store, etc. multiplesoftware processes, applications, programs, or the like. In someembodiments, processor 310 may include a multiple-core processorarrangement (e.g., dual, quad core, etc.) configured to provide parallelprocessing functionalities to allow server 140 to execute multipleprocesses simultaneously. It is appreciated that other types ofprocessor arrangements could be implemented that provide for thecapabilities disclosed herein.

Memory 320 may be a volatile or non-volatile, magnetic, semiconductor,tape, optical, removable, non-removable, or other type of storage deviceor tangible or non-transitory computer-readable medium that stores oneor more program(s) 330 such as server apps 332 and operating system 334,and data 340 used by processor 310 (and other components) to performcertain functions related to the disclosed embodiments. Common forms ofnon-transitory media include, for example, a flash drive a flexibledisk, hard disk, solid state drive, magnetic tape, or any other magneticdata storage medium, a CD-ROM, any other optical data storage medium,any physical medium with patterns of holes, a RAM, a PROM, and EPROM, aFLASH-EPROM or any other flash memory, NVRAM, a cache, a register, anyother memory chip or cartridge, and networked versions of the same.

Server 140 may include one or more storage devices configured to storeinformation. For example, server 140 may include memory 320 thatincludes instructions to enable processor 310 to execute one or moreapplications. Alternatively or additionally, the instructions,application programs, etc. may be stored in external database 180 (whichcan also be internal to server 140) or external storage communicativelycoupled with server 140 (not shown), such as one or more database ormemory accessible over network 110.

Database 180 or other external storage may be a volatile ornon-volatile, magnetic, semiconductor, tape, optical, removable,non-removable, or other type of storage device or tangible ornon-transitory computer-readable medium. Database 180 may include one ormore memory devices that store data and instructions used to perform oneor more features of the disclosed embodiments. Database 180 may alsoinclude any combination of one or more databases controlled by memorycontroller devices (e.g., server(s), computer(s), etc.) or software,such as document management systems, Microsoft SQL databases, SharePointdatabases, Oracle™ databases, Sybase™ databases, or other relationaldatabases.

In some embodiments, server 140 may be communicatively connected to oneor more remote memory devices (e.g., remote databases (not shown))through network 110 or a different network. The remote memory devicescan be configured to store information that server 140 can access and/ormanage. By way of example, the remote memory devices could be documentmanagement systems, Microsoft SQL database, SharePoint databases,Oracle™ databases, Sybase™ databases, or other relational databases.Systems and methods consistent with disclosed embodiments, however, arenot limited to separate databases or even to the use of a database.

Programs 330 include one or more software modules configured to causeprocessor 310 to perform one or more functions of the disclosedembodiments. Moreover, processor 310 may execute one or more programslocated remotely from one or more components of system 100. For example,server 140 may access one or more remote programs that, when executed,perform functions related to disclosed embodiments.

Server app(s) 332 causes processor 310 to perform one or more functionsof the disclosed methods. For example, server app(s) 332 cause processor310 to receive uploaded or recorded content, identify a user speakingwithin the content, determine a topic and chat group based on thecontent, and post a message to the chat group. In some embodiments,other components of system 100 may be configured to perform one or morefunctions of the disclosed methods.

In some embodiments, program(s) 330 may include operating system 334performing operating system functions when executed by one or moreprocessors such as processor 310. By way of example, operating system334 may include Microsoft Windows™, Unix™, Linux™, Apple™ operatingsystems, Personal Digital Assistant (PDA) type operating systems, suchas Apple iOS, Google Android, Blackberry OS, or other types of mobileoperating systems. Accordingly, disclosed embodiments may operate andfunction with computer systems running any type of operating system 334.Server 140 may also include software that, when executed by a processor,provides communications with network 110 through network interface 360and/or a direct connection to recording device 150 or chat groups 120A,120B. In some embodiments, server 140 may also host chat groups 120A,120B.

Server 140 may also include one or more I/O devices 350 having one ormore interfaces for receiving signals or input from devices andproviding signals or output to one or more devices that allow data to bereceived and/or transmitted by server 140. For example, server 140 mayinclude interface components for interfacing with one or more inputdevices, such as one or more keyboards, mouse devices, and the like,that enable server 140 to receive input from an operator oradministrator (not shown).

FIG. 4 is a diagram of a presentation utilizing an automatedtranscription insertion server, consistent with embodiments of thepresent disclosure. FIG. 4 illustrates a presenter 410 delivering apresentation 420 in a conference room. The conference room contains acamera 430 and a microphone 440. Microphone 440 may be a speaker ortelephone useable for teleconferences. Alternatively, microphone 440 maybe worn or carried by presenter 410, such as a lapel microphone, andconnected through radio waves, WiFi, or other wireless communication toa base unit. Microphone 440 may also be mounted in a conference room,such as in the conference room ceiling or walls, or on a table in theconference room. Multiple microphones may be mounted in a conferenceroom to ensure quality recording when a speaker moves around the room.Camera 430 may be stationary, or may track a presenter by identifyingsound location, for instance. Camera 430 may be integrated into camerasubsystem 220 and microphone 440 may be integrated into audio subsystem226 of recording device 200. Additionally, presentation 420 may bedisplayed by a device such as recording device 200. Recording device 200may connect to the internet or a database to access presentation filesand display slides using a projector (not shown).

FIG. 5 is a diagram of a chat group utilizing an automated transcriptioninsertion server, consistent with embodiments of the present disclosure.A user 510 may access a chat group 520. Chat group 520 may be displayedon a computer monitor, as illustrated in FIG. 5, or a mobile device,tablet, and the like. Chat group 520 may include messages 530 containingtext, graphics, or other media originating from user 510 as well asother users. Chat group 520 may display messages appearing to originatefrom presenter 410. As illustrated in FIG. 5, a message may be displayedwith the face of presenter 410, an avatar of the presenter 410, the nameof presenter 410, a username or handle of the presenter 410, or anyother identifier associated with the presenter 410. The message mayinclude text, indicating that presenter 410 said the words contained inthe message. Further, the message may also include an image, videoexcerpt, audio excerpt, link to a website, link to an ongoingpresentation, link to a section associated with the message in arecording of a finished presentation, and the like. The message may alsoinclude a feedback section 540. Feedback section 540 may includeelements such as a relevant button 542 and a not relevant button 544,allowing user 510 to signal that the message is relevant or irrelevantto chat group 520. Feedback section 540 may also include an approvalbutton 546 and a disapproval button 548, allowing user 510 to signal anopinion of the content of a message without indicating that theinformation is irrelevant. For example, a user in a chat group focusedon cybersecurity may consider a CEO's presentation on relaxedcybersecurity standards as being very relevant to the chat group, butalso may disapprove of the proposed relaxation. Feedback section 540thus allows users to provide information which may be used to furtherrefine which messages and topics are relevant to chat group 520, and toprovide feedback on the substance of a message.

FIG. 6 is a flowchart of an example process 600 for automatedtranscription insertion, consistent with embodiments of the presentdisclosure. The steps associated with process 600 may be implemented by,for example, a system, such as system 100 including a memory and atleast one processor configured to perform operations including the stepsof process 600.

Step 610 includes identifying a user as a source of content. Content maybe created as part of step 610. For instance, step 610 may include usinga video camera and a microphone, and recording at least one of a videofile with the video camera or an audio file with the microphone. Thecontent may then include at least one of the recorded video file or therecorded audio file. In some embodiments, the content may be provided asa pre-recorded presentation or teleconference. For instance, a link(e.g. Uniform Resource Locator (URL)) to access a video recording of awebinar on a hosted on a website may be provided in conjunction withstep 610.

Additionally, a file may be uploaded for use with step 610. For example,step 610 may include receiving a document, designating the receiveddocument as the content, and identifying an author of the document asthe source of the content. Step 610 may also include receiving an audioor video file saved to a hard drive, or receiving a link to a locationidentifying where a file is saved on a database. Content created as partof step 610 may be stored in database 180 for processing.

In some embodiments, identifying the user may be performed by referenceto an agenda. Step 610 may include accessing an agenda comprisingplanned presentation times and presenters corresponding to thepresentation times; determining a current presenter by comparison of alocal time with the planned presentation times; and identifying thecurrent presenter as the user. For example, an agenda for a day ofpresentations may indicate that John C. is scheduled to present between10:00 and 11:00. Step 610 may then determine that John C. is the currentpresenter for a presentation delivered between 10:00 and 11:00, andidentify John C. as the user speaking in the presentation content.Identifying a user may further be performed by reference to a useridentifier, such as a telephone number, IP address, login, emailaddress, chat group identifier, avatar, and the like. For example,multiple users may call into a teleconference from phone numbersassociated with respective users in a database. Step 610 may includedetermining a phone number associated with an active speaker, accessinga database to determine a name associated with the phone number, andidentifying the name as the user. Similarly, if multiple users access awebinar using computers, step 610 may include determining an IP addressassociated with an active speaker, accessing a database to determine aname associated with the IP address, and identifying the name as theuser.

In additional embodiments, step 610 may include detecting facialmovement(s) of a person in view of a video camera, and identifying theperson having detected facial movement as the user (for example, theuser being an active speaker). In some embodiments, the facial movementis the movement of the user's lips, with an associated enunciation bythe user. For instance, a presentation may be given in a room with manypeople who make comments or aid in the presentation. Further, the videocamera may include features to direct the video camera to a source of asound. The video camera's field of view may include a plurality ofpeople. Step 610 may determine the speaker by detecting a face withmoving lips. Step 610 may also use facial recognition technology bycomparing the recorded face to a database of images of faces, as isknown to those skilled in the art, to further identify the speaker.Additionally, step 610 may include voice recognition methods to identifya speaker's voice by comparison to stored data of possible speakers. Ifthe speaker's identity is unknown, for example if the speaker is a newemployee, step 610 may identify the person generically, such as “Speaker1.”

Step 620 includes identifying a topic from the content using a languageanalysis application. Step 620 may further include producing atranscription of the content, or providing a saved file to atranscription service via the internet and receiving a transcriptionfrom the transcription service. Further details of step 620 will beprovided below.

Step 630 includes determining, from the identified topic, a particularchat group from among a set of chat groups. Each chat group in the setmay have at least one message. Chat groups may include a plurality ofmessages recorded over time accessible in an interface. Step 630 mayanalyze a list of chat group-topic associations stored in database 180.The associations may be entered by an administrator, or may bedetermined by machine learning, as described subsequently in process700. For example, an organization may have three chat groups, such asmarketing, research and development, and finance. The marketing chatgroup may be associated with topics such as customer surveys andadvertising. The research and development chat group may be associatedwith computer models and laboratory management. The finance chat groupmay be associated with interest rates and account balances. In thisscenario, if the topic identified at step 620 is “advertising,” step 630would determine the marketing chat group as the particular chat group.

Step 640 includes posting a portion of the content as a new message fromthe user in a message thread for the particular chat group. The messagethread may include a series of messages posted to the chat group. Thenew message may contain a link to or content including text, graphic,audio, or video media. For example, if the new message displays videomedia, the new message may also include a still shot from the video.

In some embodiments, the content may be from a presentation. Forinstance, a presenter of a company's quarterly update may discuss apurchase of new computers. Information technology associates may notattend the presentation, expecting it to cover topics irrelevant toinformation technology. Step 640 may post a message in an IT chat groupwith any of a text from a transcription of the portion of the contentdiscussing the topic relevant to the chat group (e.g., computerpurchases), a video excerpt showing the portion of the contentcorresponding to the text, an image and/or a name of the presenter,and/or a link to play a presentation corresponding to the content. Thelink may connect to a live stream of the ongoing presentation, such as awebsite hosting the presentation, or may cause the live streamedpresentation to play in the message itself. If the content is adocument, the new message may display an excerpt of the document, animage and/or name of the author, and a link to download or view thedocument. Access to the live stream or to the document may be limiteddepending on permissions of members of the chat group.

The new message may also include options for members of the chat groupto provide feedback on the message's relevance and content. For example,the new message may include a feedback option, such as feedback section540, allowing a chat group member to signal approval or disapproval ofthe new message. Process 600 may also include additional steps, such asreceiving, from the chat group member, the signaled approval ordisapproval; and providing feedback comprising the signaled approval ordisapproval to the user, for instance, presenter 410. Process 600 maysend a message to the user (e.g., a speaker, presenter, or author) basedon the signaled approval or disapproval, for instance, via a chatmessage, text message, email message, or aural signal. For instance,whenever a chat group member selects an approve button, process 600 mayplay a chime sound, and when a chat group member selects a disapprovebutton, process 600 may play a buzzer sound. Alternatively, a messagemay appear on the presentation screen. In some embodiments, a cumulativefeedback may be provided to the user. For example, if ten chat groupmembers signal approval, and fifteen chat group members signaldisapproval, a net disapproval of five may be relayed to the user.Cumulative feedback may be based on a rolling time interval, such as anet approval or disapproval over the preceding five minutes. Cumulativefeedback may alternatively be a total approval or disapproval over theentire duration of a presentation. Additionally, in some embodiments, amessage may be posted to the chat group from a member of the chat groupreflecting the member's approval or disapproval. For example, if DavidR., a member of the chat group, selects the “approve” option, a messagemay be displayed in the chat group showing that David R. approves of thecontent. This may help draw attention of other members of the chat groupto the content, helping to avoid other members ignoring the content.Similarly, indications of disapproval may be provided to members of thechat group so that other members may avoid irrelevant content, therebyreducing time lost by the group as a whole.

FIG. 7 is a flowchart of an example process 700 for training automatedtopic identification, consistent with embodiments of the presentdisclosure. Process 700 may be used to identify topics in a document ortranscript during process 600. Alternatively, steps of process 700 mayoccur before or after steps of process 600. Process 700 may includemachine learning methods, such as training a neural network on contentin order to identify topics.

Step 710 includes receiving training information and a subjectcorresponding to the training information. For example, manyorganizations use industry or organization-specific jargon, includingacronyms, system names, product names, and the like, representing aunique vocabulary for different topics. Thus, at step 710, process 700may receive training information such as employee orientation documents,manuals, specifications, technology guides, process guides, policies,instructions, or an organizational wiki site. Lectures, presentations,podcasts, webinars, and the like may also be used. The information maybe uploaded, or a URL to access the information may be provided. Thesubject may be provided separately, for instance by a trainingsupervisor when uploading a file. The subject may also be determinedbased on contents of the file, such as a title slide, title page, slideheader, and the like.

Step 720 includes determining a keyword from the training informationbased on a number of times the keyword is included in the traininginformation. Step 720 may identify a plurality of keywords. Step 720 maydetermine keywords by counting the number of times the word appears in adocument or transcript, as well as the total number of words in thedocument or transcript. Step 720 may use fuzzy or proximity matchingwhen counting words in a document. Words may be sliced in order toremove common word endings indicating plurality or tense, or prefixes.Additionally, words appearing on a list of high frequency words in theutilized language may be ignored as potential keywords. For example, ifthe document is in English, the words “the” and “a” may be eliminated askeywords despite frequently appearing in a document.

Step 730 includes associating the keyword with the subject. Thisassociation may be stored in a SQL, JSON, or dictionary structure, forexample, and stored in database 180. Step 730 may be repeated for aplurality of training information items and subjects.

Step 740 includes determining a keyword frequency of the keyword in textderived from the content. Step 740 may be performed in conjunction withstep 620, for instance. The text may be analyzed to determine wordfrequency similar to step 720. In some embodiments, the text may becompared to a list of keywords identified for all subjects, with countsdeveloped for each keyword on the list. Step 750 includes identifyingthe subject corresponding to the keyword as the topic when the keywordfrequency exceeds a keyword frequency threshold. The threshold may beset by a training supervisor.

In some embodiments, process 700 may also analyze a chat group among theset of chat groups to determine a keyword chat frequency representing anumber of messages including the keyword, and identifying the analyzedchat group as the particular chat group when the keyword chat frequencyexceeds a keyword chat frequency threshold. The analysis may be combinedwith determination of the particular chat group based on topic. Forexample, the analysis may be sufficient for the chat group to beidentified as the particular chat group, allowing chat groups to changefocus over time and receive messages on a topic despite not having beenpreviously associated with the topic, without retraining. Alternatively,the analysis may be necessary for the chat group to be identified as theparticular chat group, such that a chat group previously associated witha topic must also frequently discuss the topic for messages on thattopic to be posted to the chat group. This could reduce the impact ofincorrect training or flagging of the chat group as corresponding to atopic, while also preventing posts on obsolete topics.

In some scenarios, discussed topics may vary throughout the content. Forexample, a presentation may provide an update of a company's offices,including research and development, marketing, and finance. Members ofthe research and development office may not be interested in updatesregarding marketing. Additionally, members of the marketing office maynot be permitted to see information from the finance office due toconfidentiality concerns, policies, laws, and the like. Therefore, insome embodiments, excerpts of the content may be demarcated by topic,with messages posted to chat groups containing only the excerptedmaterial. This further increases the relevance of the message and thelikelihood that members of the chat group will review the information,rather than ignoring it due to a presumption that the information isirrelevant.

FIG. 8 is an example keyword frequency analysis for determining relevanttopics and excerpts, consistent with embodiments of the presentdisclosure. An analysis similar to that illustrated in FIG. 8 may beperformed in conjunction with process 700, for example. FIG. 8illustrates a record of keyword frequency over time for a plurality ofkeywords. The keyword frequency may be the number of times the keywordwas stated in the previous minute or another time frame, for example.Additionally, the keyword frequency may be based on a window, such as300 words before and after an instance of the keyword. Further, thekeyword frequency may change as a function of time, as illustrated inFIG. 8, or may change as a function of page number, slide number, orother demarcations in the content.

“Sales” line 810 indicates the frequency of the word “sales” in apresentation over time, and “security” line 820 indicates the frequencyof the word “security” over time. For example, a presentation may covertopics of sales and security. The topics may overlap, such as during adiscussion on transaction security of a sales website. The topics mayalso exist independently, such as a discussion on email securitypreceding a discussion on quarterly sales. Threshold line 830illustrates a threshold keyword frequency required to identify a topicas being present. For example, a presenter may mention the word“security” at the beginning of a presentation, stating the security willbe discussed later. Although the word “security” is stated, the topicmay not be addressed at sufficient detail to be of interest to a chatgroup. A threshold may be established by an administrator or by trainingand pattern recognition over time. Further, different keywords may havedifferent thresholds. For example, a chief of security operations maydesire to know every time the word security is mentioned during apresentation, resulting in a low threshold, while a chief of marketingmay only be interested in in-depth discussion of sales. In someembodiments, each keyword may be associated with a keyword weight.Respective products of keyword frequencies and keyword weights may becalculated, and products may be summed across a keyword cluster,including a plurality of keywords associated with a topic, and comparedto a cluster threshold. If the cluster threshold is met, messages may beposted to a chat group. For example, a cluster may contain keywords suchas “security” having a low weight and keywords such as “dual factorauthentication” having a greater weight. A high frequency of the keyword“security” combined with a lower frequency of the keyword “dual factorauthentication” may indicate an in-depth conversation is occurring onsecurity topics. The product of the frequency of the keyword “security”and the weight of the keyword “security” may be calculated, and added tothe product of the frequency of the keyword “dual factor authentication”and the weight of the keyword “dual factor authentication.” If the sumof the two products is greater than a threshold, a detailed conversationon security may be occurring based on the keyword cluster for securitytopics, triggering posts to a security chat group.

As illustrated in FIG. 8, at time t1, “sales” line 810 first exceedsthreshold line 830. This may indicate that a presenter is focusing onsales. The keyword frequency rises and falls as the conversationprogresses. At time t2, “security” line 820 exceeds threshold line 830,indicating that the presenter is also focusing on security. At time t3,“sales” line 810 falls beneath threshold line 830, indicating that thepresentation has moved on to a different topic. For instance, at timet3, “security” line 820 remains above threshold 830, indicating that thepresentation no longer focuses on sales and now focuses on security. Attime t4, “security” line 820 falls below threshold 830, indicating thatthe presentation no longer focuses on security.

Points at which keyword frequency crosses a threshold may demarcate abeginning and an end of an excerpt. In the example illustrated in FIG.8, an excerpt regarding sales may run from time t1 to time t3, and anexcerpt regarding security may run from time t2 to time t4. A newmessage posted in a chat group focusing on a topic identified in apresentation may contain the identified excerpt. Thus, a marketing chatgroup would receive a new message containing text, audio, and/or videoincluding the excerpt from time t1 to time t3, and a security chat groupwould receive a new message containing an excerpt from time t2 to timet4. As shown in FIG. 8, excerpts may overlap. In some embodiments, chatgroup permissions may be analyzed before posting messages to a chatgroup, and a message may not be posted to a chat group lacking necessarypermissions even though a topic corresponding to a chat group ispresent. For example, if a marketing chat group is not allowed to heardiscussions on security, the marketing chat group would stop receivingmessages at time t2, or, depending on sensitivity, at the first mentionof the word “security,” even though the word “sales” has a keywordfrequency over threshold 830 at time t2.

Further, excerpts may be posted to a chat group at intervals during aperiod of time when the corresponding keyword frequency is above athreshold. For example, minute-long excerpts may be posted to a saleschat group every minute, beginning at time t1 and ending at time t3. Theinterval durations may be pre-set, or may vary based on feedbackreceived from members of a chat group.

In some embodiments, a keyword may have a frequency beneath a threshold,but the content may include important information regarding the topiccorresponding to the keyword. For example, a presentation on a budgetmay mention “security” infrequently, but members of a security chatgroup may consider the entire budget conversation relevant. Therefore,in some embodiments, chat group members may provide feedback whichcauses new messages to be posted in the chat group despite the keywordfrequency of an excerpt being beneath a threshold. Alternatively, akeyword may appear many times in content, but members of a chat groupmay not consider the content relevant. For example, members of a cybersecurity chat group may not be interested in physical security topics,and wish to ignore a presentation discussing physical security despite ahigh keyword frequency for the keyword “security.”

FIG. 9 is a flowchart of an example process 900 for receiving feedbackfrom a member of a chat group, consistent with example embodiments ofthe present disclosure. A new message posted to a chat group may includea feedback option allowing a chat group member to signal a relevancy ofthe new message, such as an option to indicate that the message isrelevant or not relevant. Step 910 includes receiving, from the chatgroup member, the relevancy of the new message. The relevancy may betransmitted as a new message within a chat group, a text message, email,and the like, or as a computer-readable electronic communication, forinstance using feedback section 540.

Step 920 includes determining a product of the keyword frequency and acoefficient based on the relevancy of the new message. For example, adetermined keyword frequency, measured by counting a number of times thekeyword appears in a time period, may be multiplied by 1.1 for everytime a chat group user indicates that the message is relevant. In someembodiments, a number may be added to the keyword frequency.Additionally, keyword frequency may be multiplied by 0.9 for every timea chat group user indicates that the message is not relevant, or anumber subtracted from the keyword frequency. Relevancy indications mayoffset one another, such that when one member of the chat groupindicates a message is relevant and another member indicates the messageis irrelevant, the coefficient remains 1. Further, the coefficient maybe based on a relevancy indication rate. For example, a discussion onbudgets may focus on cybersecurity budgets, mentioning the word“security” once at the beginning of the conversation but speaking ondetails of a security budget for a longer duration. Members of acybersecurity chat group may indicate that the discussion is relevanttowards the beginning of the discussion, ensuring that excerpts areposted to the chat group despite the keyword frequency being low. Overtime, the discussion may transition to physical security, and the rateof indications that the discussion is relevant may decrease as chatgroup members do not send relevancy indicators or send indicators thatthe content is irrelevant. The coefficient may then decrease as well,and be based, for instance, on a number of relevancy indicationsreceived in the preceding minute. The period for which the relevancyrate is determined may be based on the excerpt interval at whichmessages are posted to the chat group. Step 930 includes comparing theproduct to the keyword frequency threshold. In this manner, members of achat group may improve the relevancy of messages posted to the chatgroup in real time, while also decreasing the prevalence of irrelevantmessages.

Additionally, relevancy coefficients may be stored to improve futureposting, thus training a system to make more precise posts. For example,a keyword may be associated with a low coefficient during apresentation. The keyword frequency of a later presentation may becombined with a coefficient determined during an earlier presentation.In this way, chat group users may train a system to post messages onmore relevant topics.

Processes 700 and 900 may be further illustrated by reference to anexample. An organization may contain an office focusing on nuclear powerproduction. During step 710, a training supervisor may provide manualsconnected to the subject “nuclear power production.” Step 720 mayanalyze the manuals and identify “reactor” as a keyword based on thenumber of times the word “reactor” appears in the manuals. Step 730 mayassociate the keyword “reactor” and the subject “nuclear powerproduction.” A CEO of the organization may later give a presentation onthe organization's goals, and speak about new reactor development. Atranscript of the presentation may be created, and step 740 maydetermine the frequency of the keyword “reactor” in the presentation.Step 750 may then identify the subject corresponding to the keyword“reactor,” namely “nuclear power production,” as the topic of thepresentation because “reactor” is mentioned enough times in thepresentation to exceed the keyword frequency threshold. Excerpts of thepresentation may then be posted every minute to an operations chat groupassociated with the topic of nuclear power production. Additionally, thepresentation may be posted to a chat group associated with marketingbecause chat messages in the marketing chat group frequently mention thekeyword “reactor,” despite the marketing chat group not having a storedassociation with the topic of nuclear power production. As the CEO'spresentation progresses, members of the marketing chat group may realizethat the presentation focuses on reactor safety requirements, and, atstep 910, indications may be received that the presentation is notrelevant. The keyword frequency may be decreased based on theindications that the presentation is not relevant at step 920, and themarket chat group would no longer receive new messages from the CEO'spresentation due to the comparison at step 930. However, members of theoperations chat group may indicate that the presentation is highlyrelevant at step 910, causing more messages to be posted to the chatgroup even after the CEO reduces or stops mentioning the word “reactor”in the presentation.

In the preceding disclosure, various example embodiments have beendescribed with reference to the accompanying drawings. It will, however,be evident that various modifications and changes may be made thereto,and additional embodiments may be implemented, without departing fromthe broader scope of the disclosure as set forth in the claims thatfollow. The disclosure and drawings are accordingly to be regarded in anillustrative rather than restrictive sense.

Therefore, it is intended that the disclosed embodiments and examples beconsidered as examples only, with a true scope of the present disclosurebeing indicated by the following claims and their equivalents.

What is claimed is:
 1. A system comprising: a memory; and at least oneprocessor configured to perform operations comprising: receivingtraining information and a subject corresponding to the traininginformation; determining a keyword from the training information basedon a number of times the keyword is included in the traininginformation; associating the keyword with the subject; identifying auser as a source of content; identifying a topic from the content usinga language analysis application by: determining a keyword frequencyrepresenting a number of times the keyword occurs in a moving window;and identifying the subject corresponding to the keyword as the topicwhen the keyword frequency exceeds a keyword frequency threshold;determining, from the identified topic, a particular chat group thatfocuses on the identified topic from among a set of chat groups; andposting a portion of the content as a new message from the user in amessage thread for the particular chat group, wherein the portion of thecontent comprises the content in the moving window.
 2. The system ofclaim 1, wherein the system further comprises: a video camera; and amicrophone; and the operations further comprise: recording at least oneof a video file with the video camera or an audio file with themicrophone; and the content comprises at least one of the recorded videofile or the recorded audio file.
 3. The system of claim 1, wherein theoperations further comprise: receiving a document; designating thereceived document as the content; and identifying an author of thedocument as the user.
 4. The system of claim 1, wherein the operationsfurther comprise: accessing an agenda comprising planned presentationtimes and presenters corresponding to the presentation times;determining a current presenter by comparison of a local time with theplanned presentation times; and identifying the current presenter as theuser.
 5. The system of claim 1, wherein the system further comprises: avideo camera; and the operations further comprise: detecting facialmovement of a person in view of the video camera; and identifying theperson having detected facial movement as the user.
 6. The system ofclaim 1, wherein the operations further comprise: analyzing a chat groupamong the set of chat groups to determine a keyword chat frequencyrepresenting a number of messages comprising the keyword; anddetermining the particular chat group further comprises: identifying theanalyzed chat group as the particular chat group when the keyword chatfrequency exceeds a keyword chat frequency threshold.
 7. The system ofclaim 6, wherein the new message comprises a feedback option allowing achat group member to signal a relevancy of the new message; and theoperations further comprise: receiving, from the chat group member, therelevancy of the new message; determining a product of the keywordfrequency and a coefficient based on the relevancy of the new message;and comparing the product to the keyword frequency threshold.
 8. Thesystem of claim 1, wherein the new message comprises a link to play apresentation corresponding to the content.
 9. The system of claim 1,wherein the new message comprises a feedback option allowing a chatgroup member to signal approval or disapproval of the new message; andthe operations further comprise: receiving, from the chat group member,the signaled approval or disapproval; and providing feedback comprisingthe signaled approval or disapproval to the user.
 10. Acomputer-implemented method comprising: receiving training informationand a subject corresponding to the training information; determining akeyword from the training information based on a number of times thekeyword is included in the training information; associating the keywordwith the subject; identifying a user as a source of content; identifyinga topic from the content using a language analysis application by:determining a keyword frequency representing a number of times thekeyword occurs in a moving window; and identifying the subjectcorresponding to the keyword as the topic when the keyword frequencyexceeds a keyword frequency threshold; determining, from the identifiedtopic, a particular chat group that focuses on the identified topic fromamong a set of chat groups; and posting a portion of the content as anew message from the user in a message thread for the particular chatgroup, wherein the portion of the content comprises the content in themoving window.
 11. The computer-implemented method of claim 10, furthercomprising: recording at least one of a video file or an audio file;wherein: the content comprises at least one of the recorded video fileor the recorded audio file.
 12. The computer-implemented method of claim10, further comprising: receiving a document; designating the receiveddocument as the content; and identifying an author of the document asthe user.
 13. The computer-implemented method of claim 10, furthercomprising: accessing an agenda comprising planned presentation timesand presenters corresponding to the presentation times; determining acurrent presenter by comparison of a local time with the plannedpresentation times; and identifying the current presenter as the user.14. The computer-implemented method of claim 10, further comprising:detecting facial movement of a person in view of a video camera; andidentifying the person having detected facial movement as the user. 15.The computer-implemented method of claim 10, further comprising:analyzing a chat group among the set of chat groups to determine akeyword chat frequency representing a number of messages comprising thekeyword; and determining the particular chat group further comprises:identifying the analyzed chat group as the particular chat group whenthe keyword chat frequency exceeds a keyword chat frequency threshold.16. The computer-implemented method of claim 15, wherein the new messagecomprises a feedback option allowing a chat group member to signal arelevancy of the new message; and the method further comprises:receiving, from the chat group member, the relevancy of the new message;determining a product of the keyword frequency and a coefficient basedon the relevancy of the new message; and comparing the product to thekeyword frequency threshold.
 17. The computer-implemented method ofclaim 10, wherein the new message comprises a link to play apresentation corresponding to the content.
 18. A non-transitory computerreadable medium storing a set of instructions that are executable by atleast one processor to perform a method comprising: receiving traininginformation and a subject corresponding to the training information;determining a keyword from the training information based on a number oftimes the keyword is included in the training information; associatingthe keyword with the subject; identifying a user as a source of content;identifying a topic from the content using a language analysisapplication by: determining a keyword frequency representing a number oftimes the keyword occurs in a moving window; and identifying the subjectcorresponding to the keyword as the topic when the keyword frequencyexceeds a keyword frequency threshold; determining, from the identifiedtopic, a particular chat group that focuses on the identified topic fromamong a set of chat groups; and posting a portion of the content as anew message from the user in a message thread for the particular chatgroup, wherein the portion of the content comprises the content in themoving window.